1. Field of the Invention
The present invention relates to a server power consumption controller, and a method and computer program for controlling the power consumption of a server.
2. Description of the Related Art
A CPU (Central Processing Unit) mounted in a server computer (hereinafter the server), for example, is used for running an operating system (OS), an application program and so forth. To improve the processing efficiency of the server, the tendency from year to year has been to increase the number of CPUs mounted in the server.
In the meantime, the amount of power consumed by the server has also been increasing year by year. For example, there have been cases in which the total power consumption of the entire information processing system in a data center or other such system having large numbers of servers has increased beyond the allowable power capacity of the facility. Thus, the problem is that not only are electricity costs increasing, but also that the number of installed servers is being restricted.
Of a server's various hardware components, the CPU consumes the most power by far. Therefore, the power consumption of the server will increase in line with increasing the number and operating frequencies of the CPUs mounted in the server.
Further, the practice of integrating a plurality of processor cores into a single CPU, the so-called multiple core CPU, to enhance processing performance by executing a large number of programs in parallel is also progressing. The larger the number of cores inside the CPU, the greater the power consumption of the CPU.
Furthermore, since higher power consumption increases the load on the power source device, the life of the power source device or the like may be shortened.
Accordingly, to reduce the power consumption of the server, technologies for reducing the frequency of the CPU have been proposed (U.S. Pat. Nos. 6,845,456, 7,080,267 and 7,155,617). In these prior arts, power consumption and heat generation are lowered by forcibly reducing the CPU operating frequency and supply voltage when the CPU is idling or under a low load.
Now then, technology for disposing either one or a plurality of virtual servers on top of a single physical server is known. The technology, for example, is called server virtualization technology. The respective virtual servers can independently run their own separate OS. Server virtualization technology proportionally allocates the various types of computer resources of the physical server, such as the processor, memory, and disk device, to each of the virtual servers. Consequently, it is possible to make efficient use of the limited computer resources of the physical server.
A hypervisor running on the physical server is in charge of computer resource allocation and virtual server scheduling. The creation and deletion of a virtual server is implemented by the user (this includes the administrator; the same holds true hereinbelow) issuing an indication to the hypervisor. A virtual server is created by reserving computer resources and allocating these resources to the virtual server. This virtual server is deleted by releasing the computer resources that have been allocated to the virtual server.
The prior art disclosed in the above-mentioned Patent Documents makes it possible to reduce power consumption by lowering the frequency of the CPU. However, the prior art cannot be applied as-is to a physical server having either one or a plurality of virtual servers. That is, under a virtual server environment, simply using the prior art as-is does not make it possible to reduce power consumption without also lowering the functionality of the virtual server.
One problem has to do with the timing at which the frequency is lowered. Under a virtual server environment, a plurality of virtual servers may share a single CPU, and in this case, a plurality of virtual servers can be operated simultaneously using the same CPU.
Therefore, if the operating frequency of the CPU is lowered while one virtual server is in the idle state, the processing performance of the other virtual server sharing the CPU will also be lowered at the same time.
One other problem is the fact that lowering the operating frequency of the CPU also lowers the performance of the hypervisor that manages the virtual server. To make a virtual server environment functional requires a hypervisor for carrying out the dispatch processing and resource allocation processing for operating the respective virtual servers. Therefore, lowering the operating frequency of the CPU being used by the hypervisor not only impacts the virtual servers sharing the CPU, but also affects the operation of the hypervisor, thereby lowering the performance of the virtual servers as a whole.